package com.seuic.android;

import com.seuic.android.PinpadEnterPinListener;
import com.seuic.android.TusnInfo;

interface Pinpad {
	int GetSN( out byte[] sn, out int[] sn_len );
	int DownloadPinK( byte mk_index, byte index, in byte[] key );
	int DownloadMacK( byte mk_index, byte index, in byte[] key );
	int DownloadDesK( byte mk_index, byte index, in byte[] key );
	int EnterPin( PinpadEnterPinListener listener, byte pink_index, byte pin_mode, byte desk_index, in byte[] track_key, int overtime );
	int StopEnterPin();
	int Mac( byte key_index, in byte[] inData, out byte[] mac );
	int SetPinLen( in byte[] pinLen );
	int SetMacType( byte type );
	int TrackKeyEncrypt( byte key_index, in byte[] indata, out byte[] outdata );
	int TrackKeyDecrypt( byte key_index, in byte[] indata, out byte[] outdata );
	int MacKeyEncrypt( byte key_index, in byte[] indata, out byte[] outdata );
	int MacKeyDecrypt( byte key_index, in byte[] indata, out byte[] outdata );
	int DownloadHXBKey( byte type, byte enc_key_index, byte index, in byte[] data );
	int HXBKeyEncrypt( byte key_index, in byte[] indata, out byte[] outdata );
	int HXBKeyDecrypt( byte key_index, in byte[] indata, out byte[] outdata );
	boolean WithTouchPinpad();
	int SetPanBlock( in byte[] panblock );
	int SetAmount( in byte[] amount );
	TusnInfo GetTusn( in byte[] random );
}
